1. Field of the Invention.
The present invention relates generally to shared memory inter-processor systems and more particularly relates to reducing the communications between the processors to determine whether cached data is coherent.
2. Description of the Related Art.
Multiprocessor systems typically share a memory to have access to common data. The use of shared memory results in many technical problems that are solved according to the particular architecture of the multiprocessor system.
One multi-processor architecture includes a shared memory and private caches for each processor. The presence of multiple private caches introduces problems of cache coherence, which may result in data inconsistency. A system of caches is coherent if and only if a READ operation performed by any processor in the system of a main memory location at a specified address always delivers the most recent value of the specified address.
The problem arises for multiple caches because several copies of the same data may exist in different caches at the same time. If one of these copies has been modified and the modification has not been communicated to main memory then a READ of main memory will not deliver the most recent value of the data.
In some shared memory multi-processor systems a query is generated for any memory block not found in a local cache in the correct state. Snooping is the process of maintaining coherence between the caches in a shared-memory bus architecture. All cache controllers monitor (snoop) the bus to determine whether they have a copy of the shared cache block.
Query traffic is carried over a query bus which connects the multiple processors in the system. Query traffic is also proportional to the performance of the processors used in the multi-processor system. As larger multi-processor systems with higher performance processors are built, the need for more query bandwidth increases dramatically. Basic physical parameters (capacitance, power) limit the achievable query bandwidths obtainable with current technology.
For example, in the Ultra-SPARC system implemented by Sun Microsystems, the bandwidth of the query bus is currently limited to 9.6 Gbytes.
Accordingly, limiting query traffic is an important requirement for implementing large, high performance multiprocessor systems.